/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package EA_Model.IEC61970.Generation.Production.impl;

import EA_Model.IEC61970.Core.impl.IdentifiedObjectImpl;

import EA_Model.IEC61970.Domain.AbsoluteDateTime;
import EA_Model.IEC61970.Domain.ActivePower;
import EA_Model.IEC61970.Domain.CostPerEnergyUnit;
import EA_Model.IEC61970.Domain.CostRate;
import EA_Model.IEC61970.Domain.Hours;
import EA_Model.IEC61970.Domain.Money;

import EA_Model.IEC61970.Generation.Production.HeatRate;
import EA_Model.IEC61970.Generation.Production.ProductionPackage;
import EA_Model.IEC61970.Generation.Production.StartupModel;

import org.eclipse.emf.common.notify.Notification;

import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;

import org.eclipse.emf.ecore.impl.ENotificationImpl;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model object '<em><b>Startup Model</b></em>'.
 * <!-- end-user-doc -->
 * <p>
 * The following features are implemented:
 * <ul>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.impl.StartupModelImpl#getFixedMaintCost <em>Fixed Maint Cost</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.impl.StartupModelImpl#getHotStandbyHeat <em>Hot Standby Heat</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.impl.StartupModelImpl#getIncrementalMaintCost <em>Incremental Maint Cost</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.impl.StartupModelImpl#getMinimumDownTime <em>Minimum Down Time</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.impl.StartupModelImpl#getMinimumRunTime <em>Minimum Run Time</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.impl.StartupModelImpl#getRiskFactorCost <em>Risk Factor Cost</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.impl.StartupModelImpl#getStartupCost <em>Startup Cost</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.impl.StartupModelImpl#getStartupDate <em>Startup Date</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.impl.StartupModelImpl#getStartupPriority <em>Startup Priority</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.impl.StartupModelImpl#getStbyAuxP <em>Stby Aux P</em>}</li>
 * </ul>
 * </p>
 *
 * @generated
 */
public class StartupModelImpl extends IdentifiedObjectImpl implements StartupModel {
	/**
	 * The cached value of the '{@link #getFixedMaintCost() <em>Fixed Maint Cost</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getFixedMaintCost()
	 * @generated
	 * @ordered
	 */
	protected CostRate fixedMaintCost;

	/**
	 * The cached value of the '{@link #getHotStandbyHeat() <em>Hot Standby Heat</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getHotStandbyHeat()
	 * @generated
	 * @ordered
	 */
	protected HeatRate hotStandbyHeat;

	/**
	 * The cached value of the '{@link #getIncrementalMaintCost() <em>Incremental Maint Cost</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getIncrementalMaintCost()
	 * @generated
	 * @ordered
	 */
	protected CostPerEnergyUnit incrementalMaintCost;

	/**
	 * The cached value of the '{@link #getMinimumDownTime() <em>Minimum Down Time</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getMinimumDownTime()
	 * @generated
	 * @ordered
	 */
	protected Hours minimumDownTime;

	/**
	 * The cached value of the '{@link #getMinimumRunTime() <em>Minimum Run Time</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getMinimumRunTime()
	 * @generated
	 * @ordered
	 */
	protected Hours minimumRunTime;

	/**
	 * The cached value of the '{@link #getRiskFactorCost() <em>Risk Factor Cost</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getRiskFactorCost()
	 * @generated
	 * @ordered
	 */
	protected Money riskFactorCost;

	/**
	 * The cached value of the '{@link #getStartupCost() <em>Startup Cost</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getStartupCost()
	 * @generated
	 * @ordered
	 */
	protected Money startupCost;

	/**
	 * The cached value of the '{@link #getStartupDate() <em>Startup Date</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getStartupDate()
	 * @generated
	 * @ordered
	 */
	protected AbsoluteDateTime startupDate;

	/**
	 * The cached value of the '{@link #getStartupPriority() <em>Startup Priority</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getStartupPriority()
	 * @generated
	 * @ordered
	 */
	protected EA_Model.IEC61970.Domain.Integer startupPriority;

	/**
	 * The cached value of the '{@link #getStbyAuxP() <em>Stby Aux P</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getStbyAuxP()
	 * @generated
	 * @ordered
	 */
	protected ActivePower stbyAuxP;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected StartupModelImpl() {
		super();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected EClass eStaticClass() {
		return ProductionPackage.Literals.STARTUP_MODEL;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public CostRate getFixedMaintCost() {
		if (fixedMaintCost != null && fixedMaintCost.eIsProxy()) {
			InternalEObject oldFixedMaintCost = (InternalEObject)fixedMaintCost;
			fixedMaintCost = (CostRate)eResolveProxy(oldFixedMaintCost);
			if (fixedMaintCost != oldFixedMaintCost) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProductionPackage.STARTUP_MODEL__FIXED_MAINT_COST, oldFixedMaintCost, fixedMaintCost));
			}
		}
		return fixedMaintCost;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public CostRate basicGetFixedMaintCost() {
		return fixedMaintCost;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setFixedMaintCost(CostRate newFixedMaintCost) {
		CostRate oldFixedMaintCost = fixedMaintCost;
		fixedMaintCost = newFixedMaintCost;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductionPackage.STARTUP_MODEL__FIXED_MAINT_COST, oldFixedMaintCost, fixedMaintCost));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public HeatRate getHotStandbyHeat() {
		if (hotStandbyHeat != null && hotStandbyHeat.eIsProxy()) {
			InternalEObject oldHotStandbyHeat = (InternalEObject)hotStandbyHeat;
			hotStandbyHeat = (HeatRate)eResolveProxy(oldHotStandbyHeat);
			if (hotStandbyHeat != oldHotStandbyHeat) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProductionPackage.STARTUP_MODEL__HOT_STANDBY_HEAT, oldHotStandbyHeat, hotStandbyHeat));
			}
		}
		return hotStandbyHeat;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public HeatRate basicGetHotStandbyHeat() {
		return hotStandbyHeat;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setHotStandbyHeat(HeatRate newHotStandbyHeat) {
		HeatRate oldHotStandbyHeat = hotStandbyHeat;
		hotStandbyHeat = newHotStandbyHeat;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductionPackage.STARTUP_MODEL__HOT_STANDBY_HEAT, oldHotStandbyHeat, hotStandbyHeat));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public CostPerEnergyUnit getIncrementalMaintCost() {
		if (incrementalMaintCost != null && incrementalMaintCost.eIsProxy()) {
			InternalEObject oldIncrementalMaintCost = (InternalEObject)incrementalMaintCost;
			incrementalMaintCost = (CostPerEnergyUnit)eResolveProxy(oldIncrementalMaintCost);
			if (incrementalMaintCost != oldIncrementalMaintCost) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProductionPackage.STARTUP_MODEL__INCREMENTAL_MAINT_COST, oldIncrementalMaintCost, incrementalMaintCost));
			}
		}
		return incrementalMaintCost;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public CostPerEnergyUnit basicGetIncrementalMaintCost() {
		return incrementalMaintCost;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setIncrementalMaintCost(CostPerEnergyUnit newIncrementalMaintCost) {
		CostPerEnergyUnit oldIncrementalMaintCost = incrementalMaintCost;
		incrementalMaintCost = newIncrementalMaintCost;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductionPackage.STARTUP_MODEL__INCREMENTAL_MAINT_COST, oldIncrementalMaintCost, incrementalMaintCost));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Hours getMinimumDownTime() {
		if (minimumDownTime != null && minimumDownTime.eIsProxy()) {
			InternalEObject oldMinimumDownTime = (InternalEObject)minimumDownTime;
			minimumDownTime = (Hours)eResolveProxy(oldMinimumDownTime);
			if (minimumDownTime != oldMinimumDownTime) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProductionPackage.STARTUP_MODEL__MINIMUM_DOWN_TIME, oldMinimumDownTime, minimumDownTime));
			}
		}
		return minimumDownTime;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Hours basicGetMinimumDownTime() {
		return minimumDownTime;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setMinimumDownTime(Hours newMinimumDownTime) {
		Hours oldMinimumDownTime = minimumDownTime;
		minimumDownTime = newMinimumDownTime;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductionPackage.STARTUP_MODEL__MINIMUM_DOWN_TIME, oldMinimumDownTime, minimumDownTime));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Hours getMinimumRunTime() {
		if (minimumRunTime != null && minimumRunTime.eIsProxy()) {
			InternalEObject oldMinimumRunTime = (InternalEObject)minimumRunTime;
			minimumRunTime = (Hours)eResolveProxy(oldMinimumRunTime);
			if (minimumRunTime != oldMinimumRunTime) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProductionPackage.STARTUP_MODEL__MINIMUM_RUN_TIME, oldMinimumRunTime, minimumRunTime));
			}
		}
		return minimumRunTime;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Hours basicGetMinimumRunTime() {
		return minimumRunTime;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setMinimumRunTime(Hours newMinimumRunTime) {
		Hours oldMinimumRunTime = minimumRunTime;
		minimumRunTime = newMinimumRunTime;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductionPackage.STARTUP_MODEL__MINIMUM_RUN_TIME, oldMinimumRunTime, minimumRunTime));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Money getRiskFactorCost() {
		if (riskFactorCost != null && riskFactorCost.eIsProxy()) {
			InternalEObject oldRiskFactorCost = (InternalEObject)riskFactorCost;
			riskFactorCost = (Money)eResolveProxy(oldRiskFactorCost);
			if (riskFactorCost != oldRiskFactorCost) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProductionPackage.STARTUP_MODEL__RISK_FACTOR_COST, oldRiskFactorCost, riskFactorCost));
			}
		}
		return riskFactorCost;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Money basicGetRiskFactorCost() {
		return riskFactorCost;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setRiskFactorCost(Money newRiskFactorCost) {
		Money oldRiskFactorCost = riskFactorCost;
		riskFactorCost = newRiskFactorCost;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductionPackage.STARTUP_MODEL__RISK_FACTOR_COST, oldRiskFactorCost, riskFactorCost));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Money getStartupCost() {
		if (startupCost != null && startupCost.eIsProxy()) {
			InternalEObject oldStartupCost = (InternalEObject)startupCost;
			startupCost = (Money)eResolveProxy(oldStartupCost);
			if (startupCost != oldStartupCost) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProductionPackage.STARTUP_MODEL__STARTUP_COST, oldStartupCost, startupCost));
			}
		}
		return startupCost;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Money basicGetStartupCost() {
		return startupCost;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setStartupCost(Money newStartupCost) {
		Money oldStartupCost = startupCost;
		startupCost = newStartupCost;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductionPackage.STARTUP_MODEL__STARTUP_COST, oldStartupCost, startupCost));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public AbsoluteDateTime getStartupDate() {
		if (startupDate != null && startupDate.eIsProxy()) {
			InternalEObject oldStartupDate = (InternalEObject)startupDate;
			startupDate = (AbsoluteDateTime)eResolveProxy(oldStartupDate);
			if (startupDate != oldStartupDate) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProductionPackage.STARTUP_MODEL__STARTUP_DATE, oldStartupDate, startupDate));
			}
		}
		return startupDate;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public AbsoluteDateTime basicGetStartupDate() {
		return startupDate;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setStartupDate(AbsoluteDateTime newStartupDate) {
		AbsoluteDateTime oldStartupDate = startupDate;
		startupDate = newStartupDate;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductionPackage.STARTUP_MODEL__STARTUP_DATE, oldStartupDate, startupDate));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Integer getStartupPriority() {
		if (startupPriority != null && startupPriority.eIsProxy()) {
			InternalEObject oldStartupPriority = (InternalEObject)startupPriority;
			startupPriority = (EA_Model.IEC61970.Domain.Integer)eResolveProxy(oldStartupPriority);
			if (startupPriority != oldStartupPriority) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProductionPackage.STARTUP_MODEL__STARTUP_PRIORITY, oldStartupPriority, startupPriority));
			}
		}
		return startupPriority;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Integer basicGetStartupPriority() {
		return startupPriority;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setStartupPriority(EA_Model.IEC61970.Domain.Integer newStartupPriority) {
		EA_Model.IEC61970.Domain.Integer oldStartupPriority = startupPriority;
		startupPriority = newStartupPriority;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductionPackage.STARTUP_MODEL__STARTUP_PRIORITY, oldStartupPriority, startupPriority));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ActivePower getStbyAuxP() {
		if (stbyAuxP != null && stbyAuxP.eIsProxy()) {
			InternalEObject oldStbyAuxP = (InternalEObject)stbyAuxP;
			stbyAuxP = (ActivePower)eResolveProxy(oldStbyAuxP);
			if (stbyAuxP != oldStbyAuxP) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProductionPackage.STARTUP_MODEL__STBY_AUX_P, oldStbyAuxP, stbyAuxP));
			}
		}
		return stbyAuxP;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ActivePower basicGetStbyAuxP() {
		return stbyAuxP;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setStbyAuxP(ActivePower newStbyAuxP) {
		ActivePower oldStbyAuxP = stbyAuxP;
		stbyAuxP = newStbyAuxP;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductionPackage.STARTUP_MODEL__STBY_AUX_P, oldStbyAuxP, stbyAuxP));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Object eGet(int featureID, boolean resolve, boolean coreType) {
		switch (featureID) {
			case ProductionPackage.STARTUP_MODEL__FIXED_MAINT_COST:
				if (resolve) return getFixedMaintCost();
				return basicGetFixedMaintCost();
			case ProductionPackage.STARTUP_MODEL__HOT_STANDBY_HEAT:
				if (resolve) return getHotStandbyHeat();
				return basicGetHotStandbyHeat();
			case ProductionPackage.STARTUP_MODEL__INCREMENTAL_MAINT_COST:
				if (resolve) return getIncrementalMaintCost();
				return basicGetIncrementalMaintCost();
			case ProductionPackage.STARTUP_MODEL__MINIMUM_DOWN_TIME:
				if (resolve) return getMinimumDownTime();
				return basicGetMinimumDownTime();
			case ProductionPackage.STARTUP_MODEL__MINIMUM_RUN_TIME:
				if (resolve) return getMinimumRunTime();
				return basicGetMinimumRunTime();
			case ProductionPackage.STARTUP_MODEL__RISK_FACTOR_COST:
				if (resolve) return getRiskFactorCost();
				return basicGetRiskFactorCost();
			case ProductionPackage.STARTUP_MODEL__STARTUP_COST:
				if (resolve) return getStartupCost();
				return basicGetStartupCost();
			case ProductionPackage.STARTUP_MODEL__STARTUP_DATE:
				if (resolve) return getStartupDate();
				return basicGetStartupDate();
			case ProductionPackage.STARTUP_MODEL__STARTUP_PRIORITY:
				if (resolve) return getStartupPriority();
				return basicGetStartupPriority();
			case ProductionPackage.STARTUP_MODEL__STBY_AUX_P:
				if (resolve) return getStbyAuxP();
				return basicGetStbyAuxP();
		}
		return super.eGet(featureID, resolve, coreType);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eSet(int featureID, Object newValue) {
		switch (featureID) {
			case ProductionPackage.STARTUP_MODEL__FIXED_MAINT_COST:
				setFixedMaintCost((CostRate)newValue);
				return;
			case ProductionPackage.STARTUP_MODEL__HOT_STANDBY_HEAT:
				setHotStandbyHeat((HeatRate)newValue);
				return;
			case ProductionPackage.STARTUP_MODEL__INCREMENTAL_MAINT_COST:
				setIncrementalMaintCost((CostPerEnergyUnit)newValue);
				return;
			case ProductionPackage.STARTUP_MODEL__MINIMUM_DOWN_TIME:
				setMinimumDownTime((Hours)newValue);
				return;
			case ProductionPackage.STARTUP_MODEL__MINIMUM_RUN_TIME:
				setMinimumRunTime((Hours)newValue);
				return;
			case ProductionPackage.STARTUP_MODEL__RISK_FACTOR_COST:
				setRiskFactorCost((Money)newValue);
				return;
			case ProductionPackage.STARTUP_MODEL__STARTUP_COST:
				setStartupCost((Money)newValue);
				return;
			case ProductionPackage.STARTUP_MODEL__STARTUP_DATE:
				setStartupDate((AbsoluteDateTime)newValue);
				return;
			case ProductionPackage.STARTUP_MODEL__STARTUP_PRIORITY:
				setStartupPriority((EA_Model.IEC61970.Domain.Integer)newValue);
				return;
			case ProductionPackage.STARTUP_MODEL__STBY_AUX_P:
				setStbyAuxP((ActivePower)newValue);
				return;
		}
		super.eSet(featureID, newValue);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eUnset(int featureID) {
		switch (featureID) {
			case ProductionPackage.STARTUP_MODEL__FIXED_MAINT_COST:
				setFixedMaintCost((CostRate)null);
				return;
			case ProductionPackage.STARTUP_MODEL__HOT_STANDBY_HEAT:
				setHotStandbyHeat((HeatRate)null);
				return;
			case ProductionPackage.STARTUP_MODEL__INCREMENTAL_MAINT_COST:
				setIncrementalMaintCost((CostPerEnergyUnit)null);
				return;
			case ProductionPackage.STARTUP_MODEL__MINIMUM_DOWN_TIME:
				setMinimumDownTime((Hours)null);
				return;
			case ProductionPackage.STARTUP_MODEL__MINIMUM_RUN_TIME:
				setMinimumRunTime((Hours)null);
				return;
			case ProductionPackage.STARTUP_MODEL__RISK_FACTOR_COST:
				setRiskFactorCost((Money)null);
				return;
			case ProductionPackage.STARTUP_MODEL__STARTUP_COST:
				setStartupCost((Money)null);
				return;
			case ProductionPackage.STARTUP_MODEL__STARTUP_DATE:
				setStartupDate((AbsoluteDateTime)null);
				return;
			case ProductionPackage.STARTUP_MODEL__STARTUP_PRIORITY:
				setStartupPriority((EA_Model.IEC61970.Domain.Integer)null);
				return;
			case ProductionPackage.STARTUP_MODEL__STBY_AUX_P:
				setStbyAuxP((ActivePower)null);
				return;
		}
		super.eUnset(featureID);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public boolean eIsSet(int featureID) {
		switch (featureID) {
			case ProductionPackage.STARTUP_MODEL__FIXED_MAINT_COST:
				return fixedMaintCost != null;
			case ProductionPackage.STARTUP_MODEL__HOT_STANDBY_HEAT:
				return hotStandbyHeat != null;
			case ProductionPackage.STARTUP_MODEL__INCREMENTAL_MAINT_COST:
				return incrementalMaintCost != null;
			case ProductionPackage.STARTUP_MODEL__MINIMUM_DOWN_TIME:
				return minimumDownTime != null;
			case ProductionPackage.STARTUP_MODEL__MINIMUM_RUN_TIME:
				return minimumRunTime != null;
			case ProductionPackage.STARTUP_MODEL__RISK_FACTOR_COST:
				return riskFactorCost != null;
			case ProductionPackage.STARTUP_MODEL__STARTUP_COST:
				return startupCost != null;
			case ProductionPackage.STARTUP_MODEL__STARTUP_DATE:
				return startupDate != null;
			case ProductionPackage.STARTUP_MODEL__STARTUP_PRIORITY:
				return startupPriority != null;
			case ProductionPackage.STARTUP_MODEL__STBY_AUX_P:
				return stbyAuxP != null;
		}
		return super.eIsSet(featureID);
	}

} //StartupModelImpl
